iT邦幫忙

第 12 屆 iThome 鐵人賽

DAY 7
0
Software Development

One Punch 一拳搞定前後端面試系列 第 7

[One Punch 一拳搞定前後端面試] DAY-07 - 第一字母大寫

  • 分享至 

  • xImage
  •  

把每個字第一個字母大寫

題目:

給一句英文(全小寫),寫一個方法(函式),把每個單字第一個字母都大寫後回傳。

這題滿常遇見,在寫程式的時候也會用到。

此文同時發佈於好讀版

Example:


input1
capitalize('good morning my friend.')

output1
'Good Morning My Friend'

input2
capitalize('hi there, i am tom.')

output2
'Hi There, I Am Tom.'

想法

第一個字大寫,其他用迴圈跑,若前面有空格則用 toUpperCase()
若沒有則繼續下去。

JavaScript 解法

function capitalize(str) {
  let result = str[0].toUpperCase();

  for (let i = 1; i < str.length; i++) {
    if (str[i - 1] === ' ') {
      result += str[i].toUpperCase();
    } else {
      result += str[i];
    }
  }

  return result;
}

Java 解法

public class MyCapitalize {

	private static String capitalize(String str) {

		String result = "";

		result += Character.toString(str.charAt(0)).toUpperCase();

		for (int i = 1; i < str.length(); i++) {
			if (Character.toString(str.charAt(i - 1)).equals(" ")) {
				result += Character.toString(str.charAt(i)).toUpperCase();
			} else {
				result += Character.toString(str.charAt(i));
			}
		}

		return result;
	}

	public static void main(String[] args) {
		capitalize("wang anmnsdff asdf asdf ");

	}

此文同時發佈於好讀版


上一篇
[One Punch 一拳搞定前後端面試] DAY-06 - 陣列切割
下一篇
[One Punch 一拳搞定前後端面試] DAY-08 - 樓梯測驗
系列文
One Punch 一拳搞定前後端面試30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

1 則留言

0
open852134
iT邦新手 5 級 ‧ 2022-06-07 15:59:43

如過是以空白為判斷依據,也可以先針對空白做 split
這樣還可以降低迴圈跑的次數,不用每個字元都跑

const result = content
    .split(" ")
    .map((text) => text.charAt(0).toUpperCase() + text.slice(1))
    .join(" ");

我要留言

立即登入留言